$(function () {
    console.log('iframe框架已加载...');
    //以下两个提交用的比较少。
    $(".ajaxSubmit-btn").click(function () {
        //防止多此点击事件的执行
        if($("body").data('flg-btn')==0){
            $("body").data('flg-btn',1);
            $(this).parents('form').ajaxSubmit({
                dataType:'JSON',
                success:function (res) {
                    layer_msg(res);
                },
                complete:function () {
                    $("body").data('flg-btn',0);
                }
            });
        }
    });

    $(".ajax-btn").each(function () {
        var effect = $(this).data('effect')||0,
            url = $(this).data('url'),
            data = $(this).data('params')||{},
            type = $(this).data('type')||'get',
            pop = $(this).data('pop'),
            jump_url = $(this).data('jump_url');
        if(effect==1){
            if(url==undefined){parent.parent.layer.msg('请求链接未定义！')}
            else {
                $.ajax({
                    url:url,
                    type:type,
                    dataType:'JSON',
                    data:data,
                    success:function (res) {
                        var jump = res.jump;
                        if(pop == 'yes,no'){
                            layer_msg(res);
                        }
                        if(pop == 'yes'){
                            if(res.code==1){
                                layer_msg(res,jump,jump_url);
                            }
                        }
                        if(pop == 'no'){
                            if(res.code==0){
                                layer_msg(res,jump,jump_url);
                            }
                        }
                    },
                    error:function () {
                        $("body").data("shadow-flg",0);
                    }
                })
            }
        }
        else{
            $(this).click(function () {
                if($("body").data('flg-btn')==0){
                    $("body").data('flg-btn',1);
                    if(url==undefined){parent.parent.layer.msg('请求链接未定义！')}
                    else {
                        $.ajax({
                            url:url,
                            type:type,
                            dataType:'JSON',
                            data:data,
                            success:function (res) {
                                var jump = res.jump;
                                if(pop == 'yes,no'){
                                    layer_msg(res,jump,jump_url);
                                }
                                if(pop == 'yes'){
                                    if(res.code==1){
                                        layer_msg(res,jump,jump_url);
                                    }
                                }
                                if(pop == 'no'){
                                    if(res.code==0){
                                        layer_msg(res,jump,jump_url);
                                    }
                                }
                            },
                            complete:function () {
                                $("body").data('flg-btn',0);
                            }
                        })
                    }
                }
            })
        }
    });
    //按钮组下的下拉显示及隐藏
    $("body").click(function () {
        $(".btn-group").each(function () {
            if ($(this).find('.card').hasClass('layui-show')) {
                $(this).find('.card').removeClass('layui-show');
            }
        })
    });
    //栏目盒子
    $(".layui-card .layui-tab ul li").click(function () {
        var index = $(this).index();
        var item = $(this).parents('.layui-card').find('.layui-card-body ul li');
        item.removeClass('layui-show');
        item.eq(index).addClass('layui-show');
    });
    //banner盒子
    $(".banner-card").each(function () {
        $(this).data('count', 0);
        var self = $(this),
            title = $(this).find('.layui-card-header>ul li'),
            indli = $(this).find(".layui-card-header .layui-carousel-ind ul li"),
            ind = $(this).find(".layui-card-header .layui-carousel-ind"),
            content = indli.parents('.layui-card').find('.layui-card-body ul li');
        indli.click(function () {
            indli.removeClass('layui-this');
            $(this).addClass('layui-this');
            self.data('count', $(this).index());
            title.removeClass('layui-show');
            title.eq(self.data('count')).addClass('layui-show');
            content.removeClass('layui-show');
            content.eq(self.data('count')).addClass('layui-show');
        });
        if (ind.has('.layui-auto')) {
            var length = indli.length, speed = ind.data('speed') || 3000;
            setInterval(function () {
                var count = self.data('count');
                count++;
                self.data('count', count);
                if (self.data('count') >= length) {
                    self.data('count', 0);
                }
                indli.removeClass('layui-this');
                indli.eq(self.data('count')).addClass('layui-this');
                title.removeClass('layui-show');
                title.eq(self.data('count')).addClass('layui-show');
                content.removeClass('layui-show');
                content.eq(self.data('count')).addClass('layui-show');
            }, speed)
        }
    });
    //ajax按钮
    $(".layui-btn").click(function () {
        var ajax = $(this).find(".ajax-btn");
        if (ajax.length > 0) {
            ajax.click();
        }
    });
    //按钮组
    $(".btn-group").click(function (event) {
        event.stopPropagation();
        if ($(this).find('.card').hasClass('layui-show')) {
            $(this).find('.card').removeClass('layui-show');
        }
        else {
            $(this).find('.card').addClass('layui-show');
        }
    });
    // 时间组件类目 同时绑定多个
    $('.time-component').each(function () {
        var type = $(this).data('type') || 'date',
            range = $(this).data('range') || false,
            value = $(this).data('value') || '',
            min = $(this).data('min') || '1900-1-1',
            max = $(this).data('max') || '2099-12-31';
        laydate.render({
            elem: this
            , trigger: 'click'
            , theme: '#01AAED'
            , type: type
            , range: range
            , value: value
            , min: min
            , max: max
        });
    });
    //表单返回
    $(".btn-back").click(function () {
        parent.parent.layer.confirm('返回将不保存已填写的内容，是否返回？',function(index){
            window.history.back();
            parent.parent.layer.close(index);
        });
    });
    //iframe 高度自适应
    $(".iframe-fluid").height($(window).height() - 140);
    //表单提交插件
    form.on('submit(user)', function (data) {
        var flg = $("body").data('flg-btn');
        var shade = $("body").data('shadow-flg');
        if(flg==0&&shade==0){
            $("body").data("shadow-flg",1);
            $("body").data('flg-btn',1);
            $.ajax({
                url:data.form.action,
                dataType:'json',
                type:data.form.method,
                data:data.field,
                success:function (res) {
                    $("body").data('flg-btn',0);
                    var jump = res.jump;
                    parent.layer.open({
                        content:res.msg,
                        yes:function (index) {
                            if(jump=='#'){
                                window.parent.location.reload();
                            }
                            else if(jump!=undefined&&jump!=""&&jump!='#'){
                                window.parent.location.href = window.public_url + jump;
                            }
                            $("body").data("shadow-flg",0);
                            parent.layer.close(index);
                        },
                        cancel:function (index) {
                            if(jump=='#'){
                                window.parent.location.reload();
                            }
                            else if(jump!=undefined&&jump!=""&&jump!='#'){
                                window.parent.location.href = window.public_url + jump;
                            }
                            $("body").data("shadow-flg",0);
                            parent.layer.close(index);
                        }
                    });
                }
            });
        }
        return false;
    });
    form.on('submit(*)',function (data) {
        console.log(data.field);
        //当存在上传时
        var file_upload = $(this).parents('form').find('.large-file-upload');
        if(file_upload.length!=0){
            for(var i=0;i<file_upload.length;i++){
                var arr = [];
                var box = file_upload.eq(i).find('.box-container');
                var id = file_upload.eq(i).data('id');
                if(box.length==0){
                    parent.parent.layer.msg('未上传完整');
                    return false;
                }
                for(var k=0;k<box.length;k++){
                    var url = box.eq(k).data('url');
                    arr.push(url);
                    console.log(url);
                    if(url==''||url==undefined){
                        parent.parent.layer.msg('未上传完整');
                        return false;
                    }
                }
                var str = arr.join(',');
                file_upload.eq(i).find('input[name="'+id+'"]').val(str);
                data.field[id] = str;
            }
        }
        //通用表单提交
        var flg = $("body").data('flg-btn');
        var shade = $("body").data('shadow-flg');
        if(flg==0&&shade==0){
            $("body").data("shadow-flg",1);
            $("body").data('flg-btn',1);
            $.ajax({
                url:data.form.action,
                dataType:'json',
                type:data.form.method,
                data:data.field,
                success:function (res) {
                    $("body").data('flg-btn',0);
                    layer_msg(res);
                },
                error:function () {
                    $("body").data("shadow-flg",0);
                    $("body").data('flg-btn',0);
                }
            });
        }
        return false;
    });
    $("select").each(function () {
        var val = $(this).data('value');
        if(val!=''){
            var option = $(this).find('option');
            for(var i=0;i<option.length;i++){
                if(option.eq(i).val()==val){
                    option.eq(i).prop('selected','selected');
                    form.render('select')
                }
            }
        }
    });
    //百度编辑器
    $(".Ueditor").each(function () {
        var id = $(this).prop('id');
        var ueditor = UE.getEditor(id, {
            initialFrameHeight: 400,
            serverUrl: public_url+"/plugin/ueditor/index",
            // toolbars: [[
            //     'fullscreen', 'source','|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify',
            //     '|','bold', 'italic', 'underline', 'superscript','backcolor','forecolor','spechars',
            //     'fontborder', 'subscript','strikethrough','background','|','removeformat', 'formatmatch', 'autotypeset', '|',
            //     'paragraph', 'fontfamily', 'fontsize','|','indent', 'lineheight','rowspacingtop',
            //     'rowspacingbottom','|', 'simpleupload','insertvideo', 'map','insertframe',
            //     '|','pagebreak', 'horizontal', 'template', '|','insertorderedlist', 'insertunorderedlist','|', 'date', 'time', '|',
            //     'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol',
            //     'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols','|','help'
            // ]]
        });
    });
    //图片上传 准备废弃
    $(".img-upload").each(function () {
        var _self = $(this);
        var id = _self.attr('id'),title = _self.data('title');
        var action = $(this).data('action'),max = $(this).data('max'),
            mh=$(this).data('mh'),mw=$(this).data('mw');
        var str = _self.data('arr');
        setTimeout(function () {
            $("#"+id).find('.imgTitle').html(title);
        },500);
        var random = RandomNum(10000000,99999999);
        $(this).addClass('img-upload'+random);
        if(str!==''){
            var arr = str.split(',');
            console.log(arr);
            setTimeout(function () {
                for(var i=0;i<arr.length;i++){
                    var k = 'a'+i;
                    var dom = '<li data-delid='+ i +' data-delname='+ arr[i] +'>' +
                        '<img src='+ system_config.App+ '/'+arr[i] +'>' +
                        '<input type="hidden" name="'+id+'['+k+']" value='+arr[i]+' class="address-input">' +
                        '<i class="delImg" onclick="$(this).parents(\'li\').remove()">        X    </i>' +
                        '</li>';
                    _self.find('.imgAll ul').append(dom);
                }
            },500)
        }

        var imgFile = new ImgUploadeFiles('.img-upload'+random,function(e){
            // console.log(this.domId);
            this.init({
                MAX : max, //限制个数
                MH : mh, //像素限制高度
                MW : mw, //像素限制宽度
                callback : function(arr){
                    console.log(arr);
                    if(arr!=''){
                        $.ajax({
                            url:public_url+'/plugin/upload/base64',
                            data:{src:arr[0].src},
                            dataType:'JSON',
                            type:'POST',
                            success:function (res) {
                                if(res){
                                    var li = $(".img-upload"+random+" .imgAll ul li");
                                    for(var i=0;i<li.length;i++){
                                        if(li.eq(i).data('delid')==arr[0].delId){
                                            li.eq(i).find('.address-input').val(res);
                                        }
                                    }
                                }
                            }
                        })
                    }
                }
            });
        });
    });
    //选择框
    $(".dustar-check-box").each(function () {
        var id = $(this).prop('id');
        var checkbox = $(this).find('input[type="checkbox"]');
        var hidden = $(this).find("input[name='"+ id +"']");

        form.on('checkbox('+ id +')', function(data){
            var array = hidden.val();
            if(array==''){
                array = [];
            }
            else {
                array = JSON.parse(array);
            }
            var json = $(data.elem).prop('name');
            json = json.split( id + '_arr')[1];
            json = JSON.parse(json);
            var count = 0;
            if(data.elem.checked){
                for(var i=0;i<array.length;i++){
                    console.log(array[i],json[0]);
                    if(array[i].id!=json[0].id){
                        count++;
                    }
                }
                if(count==array.length){
                    array.push(json[0]);
                }
            }
            else {
                for(var i=0;i<array.length;i++){
                    if(array[i].id==json[0].id){
                        array.splice(i,1);
                    }
                }
            }
            hidden.val(JSON.stringify(array));
        });

    });
    //iframe内页拓展部分自适应高度
    $("form.auto-iframe").each(function () {
        var height = $(this).height();
        var id= $(this).data('id');
        $("body").css('overflow-x','hidden');
        var iframe = $("#"+id ,parent.document);
        if(iframe.hasClass('auto-iframe')){
            $("#"+id ,parent.document).height(height+50);
        }
    });
    //二维码
    $(".qrcode").each(function () {
        var href = $(this).data('href'),render = $(this).data('render'),
            bac = $(this).data('bac'),fore = $(this).data('fore'),
            width = $(this).data('width'),height = $(this).data('height');
        $(this).qrcode({
            text:href,
            render: render,
            width: width,
            height: height,
            foreground: fore,
            background: bac
        })
    });

    //复制按钮
    var copyBtns = document.querySelectorAll('.copy-btn');
    var clipboard = new ClipboardJS(copyBtns);
    clipboard.on('success', function(e) {
        parent.parent.layer.msg('复制成功！');
    });
    clipboard.on('error', function(e) {
        parent.parent.layer.msg('复制失败！');
    });

    //截图*****
    $(".screen-shot").each(function () {
        var file_name = $(this).data('file-name'),
            dom = $(this).data('dom'),
            html = $(this).data('html'),
            self = $(this);
        $(this).click(function () {
            var flg = self.data('flg');
            if(flg==0||flg==undefined){
                self.data('flg',1);
                self.html('请稍后...');
                self.addClass('layui-btn-disabled');
                html2canvas($(dom), {
                    onrendered: function(canvas) {
                        self.removeClass('layui-btn-disabled');
                        self.html(html);
                        self.data('flg',0);
                        console.log(canvas);
                        canvas.id = "mycanvas";
                        var img = convertCanvasToImage(canvas);
                        //调用下载方法
                        if(browserIsIe()){  //假如是ie浏览器
                            DownLoadReportIMG(file_name+'.jpg',img.src);
                        }else{
                            download(img.src,file_name)  //下载图片
                        }
                    }
                });
            }
        });
    });
    //资料页的图片修改操作
    $(".dustar-profile").each(function () {
        var uploader = WebUploader.create({
            auto:false, //是否自动上传
            pick: {
                id: '.file_btn',
                name:"file", //这个地方 name 没什么用，和fileVal 配合使用。
                multiple:false  //默认为true，true表示可以多选文件，HTML5的属性
            },
            swf: public_url + '/static/webuploader/Uploader.swf',  //在这里必需要引入swf文件，webuploader初始化要用
            fileVal:'file',  //提交到到后台，是要用"multiFile"这个名称属性来取文件的
            server: public_url + "/plugin/lupload/index",
            duplicate:true,//是否可重复选择同一文件
            resize: false,//是否压缩
            chunked: true,  //分片处理
            chunkSize: 1024 * 1024, //每片1M
            chunkRetry:2,//如果失败，则不重试
            threads:2,//上传并发数。允许同时最大上传进程数。
            fileNumLimit:999,//上传的文件总数
            // 禁掉全局的拖拽功能。
            disableGlobalDnd: true,
            prepareNextFile:true,
            accept:{
                title: 'Images',
                extensions: 'gif,jpg,bmp,png',
                mimeTypes: 'image/*'
            },
            fileSingleSizeLimit:1024*1024*10
        });
        uploader.on('fileQueued',function (file) {
            uploader.md5File( file )
            // 及时显示进度
                .progress(function(percentage) {

                })
                // 完成
                .then(function(val) {
                    $(".img-box").data('md5',val);
                    //上传前添加参数 md5
                    uploader.on('uploadBeforeSend', function (obj, data, headers) {
                        data.md5 = val;
                        data.accept = 'images';
                    });
                    uploader.upload();
                });
            uploader.makeThumb(file, function (error, src) {
                $(".img-box img").prop('src',src);
            },80,80);
            //每个分片到最后合并
            uploader.on('uploadAccept',function (file,res) {
                if(res.code==2){
                    $(".img-box input[type='hidden']").val(res.file_path);
                }
            });
        });

        //验证文件格式以及文件大小
        uploader.on("error", function (type) {
            if (type == "F_TYPE_DENIED") {

            } else if (type == "F_EXCEED_SIZE") {
                parent.parent.layer.msg("文件大小不能超过"+1024*10+"KB");
            }
            else if(type == "Q_TYPE_DENIED"){
                parent.parent.layer.msg("请上传图片文件！");
            }
            else {
                parent.parent.layer.msg("上传出错！请检查后重新上传！错误代码"+type);
            }
        });
    });
    //大文件上传
    $(".large-file-upload").each(function () {
        // kb 作为单位
        var self = $(this),id = $(this).data('id');
        var accept = $(this).data('accept')|| '*',_accept={};
        var maxsize = parseInt($(this).data('maxsize'))*1024 || 1024*1024*10;
        var filenum = $(this).data('filenum')||5;
        var default_box = self.find('.box-container');
        if(accept=='images'){
            _accept = {// 只允许选择图片文件格式
                title: 'Images',
                extensions: 'gif,jpg,bmp,png',
                mimeTypes: 'image/*'
            }
        }
        for(var i=0;i<default_box.length;i++){
            default_box.eq(i).find('.upload-delete').click(function () {
                $(this).parents('.box-container').remove();

            });
        }


        var uploader = WebUploader.create({
            auto:false, //是否自动上传
            pick: {
                id: '#'+id,
                name:"file", //这个地方 name 没什么用，和fileVal 配合使用。
                label: '选择文件',
                multiple:false  //默认为true，true表示可以多选文件，HTML5的属性
            },
            swf: public_url + '/static/webuploader/Uploader.swf',  //在这里必需要引入swf文件，webuploader初始化要用
            fileVal:'file',  //提交到到后台，是要用"multiFile"这个名称属性来取文件的
            server: public_url + "/plugin/lupload/index",
            duplicate:true,//是否可重复选择同一文件
            resize: false,//是否压缩
            chunked: true,  //分片处理
            chunkSize: 1024 * 1024, //每片1M
            chunkRetry:2,//如果失败，则不重试
            threads:2,//上传并发数。允许同时最大上传进程数。
            fileNumLimit:filenum,//上传的文件总数
            // 禁掉全局的拖拽功能。
            disableGlobalDnd: true,
            prepareNextFile:true,
            accept:_accept,
            fileSingleSizeLimit:maxsize,
        });

        $(this).find('.upload-btn').click(function () {
            var box = self.find('.box-container'),md5_flg=true,re_upload=false;
            for(var i=0;i<box.length;i++){
                if(box.eq(i).data('md5')==undefined){
                    md5_flg=false;
                }
                if(box.eq(i).data('re-upload')==1){
                    re_upload = true;
                }
            }
            if(re_upload){
                parent.parent.layer.msg('请处理好重传文件再进行上传！(处理方式:重传或删除该文件!)');
            }
            else
            if(!md5_flg){
                parent.parent.layer.msg('文件正在校验中，请稍后...');
            }
            else {
                uploader.upload();
            }
        });
        $(this).find('.pause-btn').click(function () {
            var box = self.find('.box-container'),md5_flg=true;
            for(var i=0;i<box.length;i++){
                if(box.eq(i).data('md5')==undefined){
                    md5_flg=false
                }
            }
            if(md5_flg){
                uploader.stop(true);
            }
            else {
                parent.parent.layer.msg('文件正在校验中，请稍后...');
            }
        });
        //整个流程
        uploader.on('all',function (type) {
            console.log(type);
        });
        //排序
        uploader.on('fileQueued',function (file) {
            var box = self.find('.box-container');
            if(box.length==filenum){
                uploader.removeFile(file);
                parent.parent.layer.msg("文件数量不能超过"+ filenum +"个");
                return false;
            }
            uploader.md5File( file )
            // 及时显示进度
                .progress(function(percentage) {
                    var per = '文件校验中(' + (percentage*100).toFixed(0) + '%)';
                    self.find("#"+file.id).find('.shadow span').html(per);
                })
                // 完成
                .then(function(val) {
                    self.find("#"+file.id).find('.shadow').hide();
                    self.find("#"+file.id).data('md5',val);
            });
            uploader.makeThumb(file, function (error, src) {
                var img = '';
                if (error) {
                    img = window.system_config.App+"/public/static/common/img/img_upload/fileIcon.png";
                }
                else {
                    img = src;
                }
                self.find('.pause-btn').click();
                var dom = '<div id="'+file.id+'" class="box-container layui-col-xs12 layui-col-sm4 layui-col-md3">' +
                    '<div class="box">' +'<div class="shadow"><span>文件校验中(0%)</span></div>' +
                    '<a href="javascript:;" class="down" download="'+file.name+'">' +
                    '<div class="file-priview">' +
                    '<img title="'+file.name+'" src="'+img+'"  alt="">' +
                    '</div></a><a class="title down"  download="'+file.name+'" title="'+file.name+'" ' +
                    'href="javascript:;" target="_blank">' + file.name +
                    '</a><div class="file-size">'+(file.size/1024).toFixed(2)+'KB</div><div class="layui-progress layui-progress-big">' +
                    '<div class="layui-progress-bar layui-bg-blue"  lay-percent="0%">' +
                    '<span>0%</span></div></div><div class="bottom"><div class="btn-right">' +
                    '<button type="button" class="layui-btn layui-btn-xs re-upload">' +
                    '<i class="fa fa-upload"></i><span>重传</span>' +
                    '</button><button type="button" class="layui-btn layui-btn-xs ' +
                    'layui-btn-red upload-delete"><i class="fa fa-trash-o"></i>' +
                    ' <span>删除</span></button></div></div></div></div>';
                $(dom).appendTo(self.find('.container'));
                self.find("#"+file.id).find('.upload-delete').click(function () {
                    $(this).parents('.box-container').remove();
                    uploader.removeFile(file);
                });
                self.find("#"+file.id).find('.re-upload').click(function () {
                    self.find("#"+file.id).find('.re-upload').hide();
                    uploader.retry(file);
                });
            }, 140, 140);
        });
        //上传前添加参数 md5
        uploader.on('uploadBeforeSend', function (obj, data, headers) {
            data.md5 = self.find("#"+obj.file.id).data('md5');
            data.accept = accept;
        });
        //每个分片到最后合并
        uploader.on('uploadAccept',function (file,res) {
            if(res.code==0){
                layer.alert(res.msg);
                self.find("#"+file.file.id).find('.re-upload').show();
                self.find("#"+file.file.id).data('re-upload',1);
                uploader.stop(true);
                self.find("#"+file.file.id).find(".layui-progress-bar").css('width','0%');
                self.find("#"+file.file.id).find(".layui-progress-bar span").html('0%');
            }
            if(res.code==2){
                self.find("#"+file.file.id).data('url',res.file_path);
                self.find("#"+file.file.id).find("a.down").prop('href',system_config.App + '/' + res.file_path);
                self.find("#"+file.file.id).find(".layui-progress-bar").css('width','100%');
                self.find("#"+file.file.id).find(".layui-progress-bar span").html('100%');
                if(res.status =='exist'){
                    uploader.removeFile(file.file);
                }
            }
        });
        //进度条
        uploader.on('uploadProgress', function (file, percentage) {
            var num = (percentage*100).toFixed(0);
            var text = num + '%';
            self.find("#"+file.id).find(".layui-progress-bar").css('width',percentage*100 + '%');
            self.find("#"+file.id).find(".layui-progress-bar span").html(text);
        });
        //验证文件格式以及文件大小
        uploader.on("error", function (type) {
            if (type == "F_TYPE_DENIED") {

            } else if (type == "F_EXCEED_SIZE") {
                parent.parent.layer.msg("文件大小不能超过"+maxsize/1024+"KB");
            }else if (type == "Q_EXCEED_NUM_LIMIT"){
                parent.parent.layer.msg("文件数量不能超过"+ filenum +"个");
            }
            else if(type == "Q_TYPE_DENIED"){
                parent.parent.layer.msg("请上传图片文件！");
            }
            else {
                parent.parent.layer.msg("上传出错！请检查后重新上传！错误代码"+type);
            }
        });
    });

    form.on('switch', function(data){
        console.log(data.elem.checked); //开关是否开启，true或者false
        var checked = data.elem.checked;
        if(checked){
            $("input[name='is_hide']").val(1);
        }
        else {
            $("input[name='is_hide']").val(0);
        }
    });


});

